package org.ciallo.simplemusicplayer.data.model;


import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.PrimaryKey;

/**
 * @author Jukomu
 * @Description: 代表收藏歌曲的实体
 * 主要包含歌曲ID和收藏时间
 * @Package: org.ciallo.simplemusicplayer.model
 * @Project: SimpleMusicPlayer
 * @name: FavoriteSong
 * @Date: 2025/5/29-05:05
 * @Filename: FavoriteSong
 */
@Entity(tableName = "favorite_songs",
        foreignKeys = @ForeignKey(entity = Song.class, // 假设你有一个 Song 实体，并且它也是 @Entity
                parentColumns = "id", // Song 实体的ID字段名
                childColumns = "song_id",
                onDelete = ForeignKey.CASCADE)) // 当Song被删除时，对应的收藏记录也删除
public class FavoriteSong {

    /**
     * 收藏的歌曲ID，同时也是主键。
     * 它关联到 Song 表中的歌曲ID。
     */
    @PrimaryKey
    @ColumnInfo(name = "song_id")
    public long songId;

    /**
     * 歌曲被添加到收藏的时间戳 (毫秒)。
     */
    @ColumnInfo(name = "added_timestamp")
    public long addedTimestamp;

    /**
     * 构造函数。
     * @param songId 收藏的歌曲ID。
     * @param addedTimestamp 添加到收藏的时间戳。
     */
    public FavoriteSong(long songId, long addedTimestamp) {
        this.songId = songId;
        this.addedTimestamp = addedTimestamp;
    }
}
